System and method for remotely controlling network resources

ABSTRACT

A personal network may be established by interconnecting a plurality of satellites as part of the personal network. Each satellite may be configured to communicate with one or more other satellites. On any given one of the plurality of satellites, data indicating a connectivity status for the one or more other satellites is automatically received, and information indicating a capability of the one or more other satellites is automatically received. The given satellite may be configured to enable at least one other corresponding satellite in the plurality of satellites to be made available for use, so that a capability of the at least one other corresponding satellite is made available for the given satellite.

RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.13/455,683, filed Apr. 25, 2012, which is a Continuation of U.S. patentapplication Ser. No. 13/077,879, filed Mar. 31, 2011, now U.S. Pat. No.8,195,765 B2, which is a Continuation of U.S. patent application Ser.No. 10/888,745, filed Jul. 9, 2004, now U.S. Pat. No. 7,937,484 B2; allof the aforementioned priority applications are hereby incorporated byreference in their entirety for all purposes.

TECHNICAL FIELD

The disclosed embodiments relate generally to the field of networks. Inparticular, the disclosed embodiments relate to a system and method forremotely controlling network resources.

BACKGROUND

There are an increasingly large number of devices that have networkconnectivity. Over the years, network connectivity has been extended toappliances such as refrigerators, home entertainment centers, andinteractive box sets for use with television sets, digital cameras, andcell phones. With the evolution of these devices, there have beendevelopments in home networks. For example, WIFI technology enablesusers to interconnect various network enabled devices wirelessly to formtheir own local area network. Various services and applicationscurrently exist with the goal of establishing data connectivity betweendifferent network locations. The growth of the Internet and other typesof networks has contributed to the numerous networking applications thatcurrently exist.

There is also an interest in extending network connectivity to devicesthat can roam. These devices include cell phones, personal digitalassistants (PDAs), and stations that can be assembled on vehicles orairplanes. While wireless networks for such roaming devices exist, thesenetworks tend to have limited bandwidth, and can be expensive. Inaddition, it is difficult for operators of such devices to interact withnetworks, given that these devices often have poor user-interfacefeatures, and limited processing/memory resources for tasks that areoften desired from them.

Currently, there are various interoperability issues when differenttypes of network enabled devices are coupled. Often, the differentdevices operate on incompatible platforms or operating systems. This cancause problems in how these devices share data with one another.Furthermore, connected devices may use different data types (.WAV versusMPEG) and/or data formats that hinder the user's ability to share dataamongst devices. As an example, the size of the screen display on a cellphone is typically too small to render images from a digital camera,even if the cell phone is camera-enabled. Often, the result is that whenusers want to share data amongst connected devices, that user mustperform numerous manual steps, such as manually converting data formats.

There are various network applications that have pertinence to thisapplication. One common network application is Instant Messaging(IM)—the service that establishes connectivity amongst users indifferent locations for purpose of enabling those users to send instantmessages to each other. IM allows users to maintain a community list(e.g. “buddy list”), and the list can be configured to inform the userof the status of members in the community. The status information maycorrespond to the status of a particular member's terminal (if thatmember's computer is off, the status of that member on the communitylist may be “signed off”). The status information may also correspond tothe status of the IM service or application as it is operated on aparticular member's terminal. For example, a user may choose to close anIM application, in which case other members may be notified that theparticular member is not available for messaging. The status informationmay also be provided manually by the user. For example, some IMapplications allow the user to select a status (“stepped away”). In eachcase, the status information provides a mechanism by which a user caninform other select other users of a community of his or her status.

PC ANYWHERE is a troubleshooting application that allows an experttechnician to remotely view a terminal for purpose of troubleshootingand software configuration. A user of a recipient terminal may requestassistance from an expert. The user may need to be present in order toprovide the expert permission to access his or her computer. When theexpert logs on to a recipient terminal, the expert can use the PCANYWHERE application to view the screen of the recipient terminal. Theexpert can also manipulate the recipient terminal, such as open filesand operate applications. In turn, the recipient terminal may perform aseries of refresh operations in order to transmit visual data of therecipient terminal's screen to the technician.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system on which a personal network can beimplemented, according to an embodiment.

FIG. 2A describes a methodology that illustrates how a personal networkcan be established, according to an embodiment.

FIG. 2B illustrates how the personal network can be maintained bytracking when satellites disconnect or otherwise become unavailable onthe personal network, under an embodiment.

FIG. 3 illustrates a method that illustrates how members of a communitynetwork can join and receive real-time information regarding a presenceof other members in the community

FIG. 4 illustrates data structures that can be used to inform individualsatellites of a personal network information about other members in thepersonal network, according to an embodiment of the invention.

FIG. 5 illustrates a personal network formed from a plurality ofheterogeneous members interconnected across numerous data transfermediums.

FIG. 6 provides an illustrative example of an embodiment of theinvention.

FIG. 7 illustrates a basic method illustrating how linked memoryresources on a personal network may be used, according to an embodiment.

FIG. 8 illustrates a system for forming and using a combined memory,under an embodiment.

FIG. 9 is a method to link memory from different locations of a personalnetwork, and to associate actions with specific portions of the linkedmemory, under one embodiment of the invention.

FIG. 10 illustrates a system for presenting contents of memory resourceson a personal network, under an embodiment of the invention.

FIGS. 11A-11G illustrate various user-interfaces for use withembodiments described herein.

FIG. 12A illustrates a system for enabling one satellite to remotelycontrol another satellite, under an embodiment.

FIG. 12B illustrates a system for enabling one satellite to remotelycontrol the use of data amongst a series of satellites, under anotherembodiment.

FIG. 12C illustrates a system for enabling one satellite to remotelycontrol the application and use of data between two satellites intandem, under an embodiment.

FIG. 13 illustrates a method for enabling a first satellite to receive adata stream from a second satellite, through the control of the firstsatellite, under an embodiment.

FIG. 14 illustrates a method for implementing a transducer on a personalnetwork in order to transmit content to various kinds of devices, underan embodiment.

DETAILED DESCRIPTION

A system and method are described for enabling users to establish anddefine a network of devices and resources that are personal to theparticular user or class of users. Such networks may be referred to aspersonal networks. Embodiments described herein enable such personalnetworks to be established using heterogeneous elements, such as,personal computers, software applications, Internet accounts, digitalcameras, media stations, and network enabled appliances. Theheterogeneous elements include hardware, software, data and otherresources having different primary usages, operating systems, and/orplatforms. In addition, the personal network may encompass elements thatare interconnected over various types of data networks, including forexample, the Internet, the public switched telephony network, or acellular network. The connectivity established amongst the elementsenables various seamless operations to be performed. Many functionalaspects and benefits can be attained as a result of the connectivityestablished through the personal network.

Embodiments described herein provide that a personal network ofheterogeneous elements may be presented and used as a single entity. Theelements of the network may be referred to as satellites. In oneembodiment, individual satellites in the personal network maycommunicate directly with some or all of the other satellites. A givensatellite may receive data indicating a connectivity status for at leastsome of the other satellites. The given satellite may also receiveinformation indicating a connectivity status for the one or more othersatellites. In addition, the given satellite is configured to enable atleast one other satellite in the personal network to be available forits use. This allows the given satellite to use the capability ofanother satellite.

The term “satellite” may include a designated element for a personalnetwork that is capable of direct communications with one or more otherelements of the network. Examples of satellites that can be used withembodiments described herein include a device, an application, a set ofdata, or a resource such as a third-party Internet account. In oneembodiment, each satellite in a personal network corresponds to anelement having an interface that enables that satellite to communicatedirectly with other satellites, particularly when the other satellitesare provided the same or a compatible interface. The directcommunications amongst satellites may correspond to peer-to-peercommunications.

Embodiments described herein provide numerous advantages and benefits.Among the advantages, users can operate the various devices andapplications that form their personal network through a single interfaceand from multiple devices or network locations. The functionality of thenetwork devices can be made uniform and simple, so that the user doesnot have to learn and apply different operating procedures toaccommodate different devices, operating systems, data types and/orapplications. Data can also be treated more uniformly. For example, theuser does not have to match specific media players for select datatypes.

Additionally, the resources of the personal network, including forexample, the media library and media sources, can be made available tomultiple heterogeneous devices, including devices that were notoriginally designed or suited for such functionality. For example,television transmissions can be redirected to various display-carryingelements of a user's personal network. But other than displays, it ispossible that the elements do not necessarily have a primary or intendedusage for displaying video and/or television signals. For example, inthe case of a cell phone, the original manufacturing usage may be toenable users to view dialed and received phone numbers, emails and textcontent, and possibly low-resolution images. However, if such a deviceis configured as a network satellite or element, the device may bemodified to receive media feeds.

Another embodiment described herein enable a user to control one or moreother applications, either at the same time or in tandem. For example, aPDA can be provided a remote control application to control anotherdevice, or how data is handled by multiple devices in tandem. Variousother benefits and advantages will be made more clear in thisapplication.

According to an embodiment, the establishment of a personal networkenables memory resources located at various locations and on multipledevices to be combined so as to have the appearance of a single entity.According to one embodiment, a combined memory may be defined by linkingmemory provided at different network locations of the personal network.The combined memory may traverse across multiple machines, operatingsystems, networks and network domains, and may even be distributed underthe control of two or more entities. An association may be formedbetween a memory location in the combined memory and a known componentor device that can communicate with the personal network. The componentmay correspond to a satellite or non-satellite. The association may bebetween an action or event performed or detected by the component andthe memory location. Once the associated action or event is detected asoccurring by the component, data related to that action or event mayautomatically be transmitted to and stored at the first memory location.

A known component or device may correspond to a component that has aknown user (e.g. someone who has a password and login to the personalnetwork, or a gateway on the personal network). The known component ordevice may also correspond to a device that has a history of use withthe personal network, or can otherwise be verified as being trustworthy.In many cases described herein, a roaming device may be a knowncomponent, but not a satellite. Non-satellite devices may lack theinterface, or otherwise be precluded (such as by firewall) from formingdirect, bi-directional communications with other satellites.Non-satellite devices may still include some components that permit alimited access to the personal network, such as a browser to view webcontent, etc.

Other embodiments describe different uses and applications for apersonal network. The plurality of satellites may be interconnected toform at least a part of a personal network. Each satellite may aninterface (such as an application program interface) for communicatingwith one or more other satellites. On a roaming device, an embodimentprovides that data is automatically received to indicate a connectivitystatus for one or more of the plurality of satellites.

In another embodiment, data structures may be associated with each of aplurality of satellites that form the personal network. Each datastructure may carry data that indicates a connectivity status for atleast some of the other satellites, and a capability of at least some ofthe other satellites. The data structure may be automatically updated onat least some of the satellites in the personal network when (i) anadditional satellite is interconnected to be on the personal network, or(ii) another satellite is disconnected from the personal network.According to embodiments, the data structure may be in the form of atable, database, or relational data structure.

Data stored in the data structure of one satellite and corresponding tothe capability of another satellite may provide information about theother satellite's characteristics. These characteristics may include,for example, a processor type or capability used by the other satellite,a memory size available to the other satellite, a display size, adisplay resolution, and a bandwidth of network connection for the othersatellite.

A personal network may be used to share information about desired mediaand media programs. In an embodiment, a satellite of a personal networkmay be configured to receive data corresponding to select mediaprograms. These media programs may be provided over channels of anexternal media programming source (such as cable or satellitetelevision). The user may specify what programs are of interest to himthrough interaction with a satellite in the personal network. Throughthe interaction, a schedule may be made available for one or more of thesatellites. The schedule may also be made available to registeredcomponents of the personal network, such as roaming, non-satellitedevices. The schedule may list programs of interest for the user, basedon the user's interest.

In an embodiment, the user may change his or her selection of mediaprograms. This change may be detected by the user. The schedule may thenbe updated for use by one or more of the plurality of interconnectedsatellites

According to another embodiment, a user may interconnect a plurality ofsatellites to form a personal network. A plurality of locations may beidentified that form at least a part of the personal network. Thesatellites may be provided at the network locations. A plurality ofitems may be selected by the user and provided at each of the pluralityof network locations. A plurality of items may be selected by the userand provided at each of the plurality of network locations. An aggregatepresentation of the plurality of items may be formulated and provided.

Change to the items in the combined memory may in turn generate anautomatic update or change in the aggregated presentation of thecontent. These changes may include the addition or deletion of aparticular item.

Another embodiment enables applications for to use one satellite(including a device or application) to remotely control one or moreother satellites. Additional embodiments enable one satellite to controlmultiple satellites in tandem.

According to one embodiment, a satellite interconnected to form part ofthe personal network is enabled to (i) access media resources on atleast a second satellite in the plurality of satellites, (ii) initiatethe second satellite to perform an operation for generating a mediaoutput from one or more of the media resources, (iii) direct the secondsatellite to stream data corresponding to the media output to the firstsatellite, and (iv) generate a remote media output from the streameddata.

Furthermore, one or more embodiments described herein may be implementedthrough the use of instructions that are executable by one or moreprocessors. These instructions may be carried on a computer-readablemedium. Machines shown in figures below provide examples of processingresources and computer-readable mediums on which instructions forimplementing embodiments of the invention can be carried and/orexecuted. In particular, the numerous machines shown with embodiments ofthe invention include processor(s) and various forms of memory forholing data and instructions. Examples of computer-readable mediumsinclude permanent memory storage devices, such as hard drives onpersonal computers or servers. Other examples of computer storagemediums include portable storage units, such as CD or DVD units, flashmemory (such as carried on many cell phones and PDAs), and magneticmemory. A computer-readable medium as used herein may extend acrossmultiple machines. For example, the medium may be distributed betweenclient and server in order to perform a stated task or operation.

Architecture Overview

FIG. 1 illustrates a system on which a personal network can beimplemented, according to an embodiment. As shown, a personal network102 is formed in part by a first satellite 110, second satellite 120,and third satellite 130. In one embodiment, each satellite 110, 120, 130is provided on a separate device (see e.g. FIG. 3). However, a satellitemay also correspond to an application or data set residing on aparticular device, so that the particular device can include multiplesatellites. In one embodiment, a satellite corresponds to anyapplication, sequence of instructions, or set of data which can beprovided an interface (such as an application program interface or API)for other use by other applications. In particular, two or moreheterogeneous applications may be enabled to communicate with oneanother through use of a similarly configured API for purpose ofallowing at least one application to control or otherwise use anotherapplication. For example, a satellite may correspond to a commerciallyavailable media player application that has been recompiled to include areconfigured API for use with other similarly configured (but perhapsheterogeneous) applications. As will be described, an embodimentprovides that the API accommodates a heterogeneous network.

A repository 140 is coupled to communicate with each satellite 110, 120,130. As will be described, the repository 140 maintains anidentification of each satellite actively connected to the personalnetwork 102, as well as a description of a capability of each suchsatellite. The repository 140 may correspond to a satellite thatperforms, as part of its operations, the task of maintaining a table ormaster list of such information about all other satellites in thepersonal network. Each satellite 110, 120, 130 may also communicate withone or more of the other satellites directly. In one embodiment,communications between the repository 140 and each of the satellites110, 120, 130 is of a server-client relationship, while communicationsamongst satellites is of a peer-to-peer nature. In the context ofembodiments described, one difference between client-server andpeer-to-peer communications is that with client-server communications,communications between two satellites (that are not servers) requirescommunications with at least one intermediary—that being the server.First, one satellite would have to exchange communications with theserver, then the server would forward that communication by exchangingcommunications with the other satellite. In many situations, this can bedisadvantageous, because the server can create a bottle-neck. Inpeer-to-peer communications, the intermediary server can be avoided, ascommunications between two satellites is direct.

The personal network 102 may be formed by interconnecting satellitesacross multiple types of communication mediums. In an example providedby FIG. 1, a local area network (LAN) 112 is used to couple (indirectlyor directly) the first satellite 110 to the repository 140. A localcommunication link 122 is used to couple the second satellite 120 to therepository 140. A public network 132, such as the Internet, is used tocouple the third satellite 130 to the repository 140. Once the personalnetwork 102 is established, access to satellites and/or the resources ofthe personal network may be made through use of public networks such asthe Internet. In one embodiment, resources available on the personalnetwork are presented, made viewable or otherwise accessible to the user(or to those with permission to access the network) as a single entity.For example, files, content, programs and other resources may bepresented in an aggregated fashion, under a single user-interface, sothat the user is unaware where the different resources originated from.Thus, for example, a user may define the satellites of the personalnetwork 102, then subsequently access the personal network 102 from anyremote location to view resources on the personal network as if thepersonal network was one computer or network element.

In an embodiment, satellites 110, 120, 130 may communicate withrepository 140 and with each other. While satellites 110, 120, 130 areconnected and disconnected, the repository 140 may always be active onthe personal network. Accordingly, the repository 140 may be maderedundant, and running on different locations. In addition, the contentsof the repository 140 may be archived. The communication amongstsatellites or between a particular satellite and the repository may bedirect or indirect. For example, while FIG. 1 illustrates the localcommunication link 122 extending between the second satellite 120 andthe repository 140, the local communication link 122 may actually extendbetween the second satellite 120 and another satellite. Thus, forexample, the first satellite 110 and the second satellite 120 may beconnected using the local communication link 122, so that the secondsatellite 120 may be interconnected to one or both of the othersatellites 110, 130 and the repository 140 using both the localcommunication link and the LAN 112.

In FIG. 1, the third satellite 130 is illustrated as a non-mobile ornon-roaming device that connects to form part of the personal network102 over the Internet. In an embodiment, the third satellite 130communicates with one or more other satellites 110, 120 and therepository 140 using a gateway or proxy 128. For example, the gateway128 may provide access to a home network, on which the repository 140and one or more of the other satellites resides. The third satellite 130may use the gateway 128 to establish communications with the othersatellites and the repository 140. Resources of the personal network maybe made available to other types of remote network sites. Furthermore,other remote sites may be made part of the personal network, orotherwise used to contribute to the personal network. In one embodiment,a roaming device 135 may access the personal network 102. The roamingdevice 135 may be a satellite, in that it includes an API that cancommunicate with or receive communications from other satellites.Alternatively, the roaming device 135 may be a non-satellite, in that itincludes no API, but has other applications with limited ability to useor work with certain resources on the personal network. For example, theroaming device 135 may include a browser to enable it to view contentfrom the personal network, and perhaps perform certain actions (such assend files that are handled by the personal network). Still further, theroaming device 135 may correspond to a quasi-satellite, in that it mayhave limited permissions or usability on the personal network ascompared to other satellites, but otherwise includes an API is used tocommunicate with or receive communications from other satellites. Theroaming device 135 may also use the Internet, or a wireless network(such as a cellular network) to establish the connection. While thirdsatellite 130 may have a designated location of known IP address,roaming devices may connect to the personal network 102 from anylocation.

In addition to roaming device 135, access to the personal network 102may be made through a web-service 133. In an embodiment, an Internetsite may be provided as a service to enable or assist subscribers/usersto establish personal networks. The users may provide content,resources, configuration instructions, and/or other information toestablish, configure, and/or provide resources or content on their ownrespective personal network. In an embodiment, the user may also havelimited use (such as to view or otherwise consume content) of thepersonal network, similar to that of a non-satellite roaming device,described above. In another embodiment, the web service 133 can be usedto make any Internet terminal a point form which a user can provide suchinformation for his or her personal network. It is possible for the webservice 133 to act as an interface to provide satellite orquasi-satellite functionality to any Internet terminal.

In an embodiment, personal network 102 may comprise resources, and inparticular, user-designated resources, which are made available overpublic networks, such as the Internet. For example, a designated,third-party Internet site 138 on which a user's data or application ismaintained may be made an element of the personal network 102. Anexample of the designated network location 138 may be a personal accountfor maintaining files (such as pictures or media) on a storage mediumprovided by a third party Internet site (e.g. YAHOO! BRIEFCASE). Theselocations may be linked with the satellites 110, 120, 130 to form thepersonal network 102. Once linked, content may be selected or otherwiseprovided from the designated network location 138 to other satellites onthe personal network 102. Alternatively, resources such as memory may bemade available to other satellites in the personal network 102.

As described by embodiments, personal network 102 combines theinteroperability and availability of heterogeneous elements. Inoperation, elements of the personal network 102 may aggregate content,data, applications, and resources to maintain an appearance a singleentity. Furthermore, as will be described in greater detail, satellitesin the personal network 102 may cooperate with and use each other'scapabilities even though the satellites are heterogeneous elements.Thus, the satellites cooperate with one another in a manner that isseamless and platform independent.

According to an embodiment, at least some of the capabilities for eachsatellite are known and accounted for in the personal network 102. Therepository 140 maintains a record of each satellite's knowncapabilities, including the operations it can perform, and thelimitations or requirements that must be accounted for in using thatsatellite. This includes specific functionality provided by eachsatellite, interoperability requirements of each satellite, any hardwarelimitations presented by a satellite or a device on which the satelliteis provided, and bandwidth limitations of the particular satellite.Information about each satellite's capabilities may be provided in theform of code. In one embodiment, a natural language code is used torecord information about each device's capabilities. In addition tosatellite identification and capability information, the repository 140may maintain status information and location information for eachsatellite. The status information may indicate whether a satellite isconnected or not connected to the personal network. Alternatively, thestatus information may be maintained by only recording the presence ofactive satellites on the personal network 102. The location informationmay correspond to the local IP address of a device on which thesatellite resides. In the case of satellite 120, which is connected tothe personal network 102 via local link 122, the location informationmay correspond to an identifier of that satellite and an IP address ofthe device or network location to which that satellite is connected.

While some capabilities are known, an embodiment provides that othercapabilities of individual satellites are determined on-the-fly. This isparticular the case with capabilities that are prone to fluctuate, suchas bandwidth. For example, the bandwidth of a wireless device may vary,depending on the time of day or location of the wireless device. Oneembodiment provides that another satellite queries or tests a satelliteof interest for a particular set of capabilities. For example, thetesting satellite may attempt to send the satellite of interest a file,and measure the time or amount of bandwidth that was available for thatoperation. Once the determination is made, the testing satellite canpass the information to a satellite that actually wants to use thesatellite of interest. In one embodiment, the testing satellite has adedicated function or role, although other embodiments provide that thetesting satellite and the satellite that wants to use the satellite ofinterest are the same. The testing satellite may correspond to therepository 140, or to a dedicated satellite.

While satellites in the personal network 102 may communicate with oneanother and use each other's capabilities, it may be assumed that eachsatellite does not need to communicate or use every other satellite.Rather, each satellite may have a set of pertinent satellites on thepersonal network 102 that it may communicate with and use. For example,a digital camera application may require use of satellites that includephoto imaging application and photograph printer driver, but the cameraapplication will have no need of an audio playback component. Thus, theset of pertinent satellites for the digital camera do not include theaudio playback component.

In an embodiment, each satellite 110, 120, 130 includes an associateddata structure that maintains information about the pertinent set ofsatellites for that satellite. The first satellite 110 includes a firstlocal data structure 114, second satellite 120 includes a second localdata structure 124, and third satellite 130 includes a third local datastructure 134. It is also possible for two satellites to share a localdata structure, such as in the case where two satellites reside on acommon machine or are interconnected by local connections. Each of thesatellites 110, 120, 130 may use their respective local data structures114, 124, 134 in order to access, locate and use other satellites in thepersonal network. The local data structures 114, 124, 134 may eachreceive their information from the repository 140. Thus, the informationmaintained in the local data structures 114, 124, 134 may be in the sameform as the information maintained in the repository 140. In eithercase, the local data structure may serve as a means to reduce the amountof information that needs to be maintained for a particular satellite.Once information is transferred from the repository 140 to the localdata structures 114, 124, 134, the respective satellites 110, 120, 130may avoid having to make requests for such information from therepository. While it is possible to provide information to thesatellites exclusively from the repository 140 without implementinglocal data structures 114, 124, 134, the use of the local datastructures provides a more efficient and secure means for makingnecessary information available to the respective satellites 110, 120,130. This is particularly true in the case where satellites areinterconnected through large or public networks.

It should be noted that while a home network is one context for thepersonal network 102, implementations may be used in which the personalnetwork exists separate from the home network. For example, a user'spersonal network and home network may share some satellites, but somedevices or applications of the home network may not be shared with thepersonal network, and vice-versa.

Establishing the Personal Network

FIG. 2A describes a methodology that illustrates how a personal network,such as described in FIG. 1, may be established. The satellites andcomponents described with FIG. 2A may or may not coincide with elementsof FIG. 1. For brevity, the connectivity medium of the satellitesdescribed in FIG. 2A, or specifics as to how the satellites operate withother satellites, will not be detailed again.

FIG. 2A illustrates a first satellite 210, second satellite 220, andthird satellite 230, each of which is interconnected to a repository240. Each satellite 210, 220, 230 corresponds to one of a data set,application or device. Furthermore, each satellite 210, 220, 230includes a corresponding application program interface (API) 212 toenable one satellite to communicate with another satellite, or toprovide access to the other satellite. The API 212 enables connectivityamongst satellites 210, 220, 230 in order to enable the satellites toshare and/or receive capabilities, content and other resources. The API212 also enables the satellites 210, 220, 230 to communicate with therepository 240 in order to receive connectivity information and otherinformation about the other satellites. Each satellite 210, 220, 230 isone of a data set, application or device that either includes the API212 as an integrated component, or is capable of being used when the API212 is provided to it. In the latter case, the satellite may correspondto a commercially available application (perhaps provided by a thirdparty) that can be recompiled or reconfigured to include API 212.

In an embodiment, a personal network may be established by individualsatellites joining the personal network. Initially, the repository 240may be established, and additional satellites are added to form thepersonal network on which the second satellite 220 and third satellite230 are already members. FIG. 2A illustrates a case where firstsatellite 210 is added to the personal network. A request 202 is made bythe first satellite 210 to the repository 240 to join. The request 202is a client-server type communication. Included in the request areinstructions containing information about the capabilities of the firstsatellite 210. Additional information describing the first satellite 210to the repository 240 may also be included. The additional informationmay include data identifying a location of the first satellite (e.g. IPaddress).

The repository 240 receives request 202, and records the information,including the instructions and the location of the first satellite 210.In response to receiving the request 202, the repository 240 sends out acommunication 204. According to one embodiment, the communication 204 issent out to all of the satellites that are actively connected to be inthe personal network. The communication 204 includes information aboutall of the active satellites in the personal network. As such, thecommunication 204 provides information to each satellite about whatsatellites are part of the personal network at a given moment when thefirst satellite 210 joins. The information in the communication 204 mayalso include the capabilities and location of each device activelyconnected to be part of the personal network.

According to another embodiment, the repository 240 includesintelligence to be able to determine what satellites are pertinent tothe newly joined first satellite 210. The communication 204 may only besent out to the pertinent satellites, rather than broadcast to allsatellites. This provides one mechanism by which the satellites canmaintain local data structures (e.g. 114, 124, 134) that omitinformation about non-pertinent satellites. In one embodiment,repository 240 may acquire the intelligence for determining whatsatellites are pertinent to the first satellite from the first satelliteitself, and specifically from the request 202 or other notification fromthe first satellite. Alternatively, the repository 240 may maintain orhave access to a master library that includes lists of pertinentsatellites for any given satellite. Still further, as anotheralternative, each satellite may include its own intelligence todetermine what information contained in communication 204 is aboutnon-pertinent satellites and can be omitted.

Once communication 204 is completed, the first satellite 210 can beassumed to be part of the personal network. It is then possible then forcommunications to be made to the first satellite 210 from othersatellites. In the personal network, one satellite may use a serviceprovided by another satellite. A service is part of the capabilitiesdescribed for a particular satellite. Thus, the capabilities of eachsatellite may include the service provided by that satellite, as well aslimitations or features of the particular satellite. In, for example, acase where first satellite 210 needs a service from second satellite220, the first satellite makes a request 206 directly to the secondsatellite. The request 206 may be a peer-to-peer communication, asopposed to a client-server communication. The second satellite 220 maythen generate a response 208, which establishes that the secondsatellite 220 will provide the requested service to the first satellite210.

As an alternative, request 206 may not be specific to second satellite220, but rather a broadcast or announcement sent on the personalnetwork. This may occur in an embodiment where the first satellite 210does not know the capabilities of other satellites, or when more thanone satellite can provide the requested service. An available satellitethat is capable of providing the requested service may then generate theresponse 208.

According to an embodiment illustrated by FIG. 2B, the personal networkmay be maintained by tracking when satellites disconnect or otherwisebecome unavailable on the personal network. For example, secondsatellite 220 may be disconnected. In an embodiment, second satellite220 may be disconnected from the personal network in a manner similar tothe first satellite 210 joining the personal network. That is, secondsatellite 220 sends a notification 216 to be disconnected. Since therequest is to be discontinued, the notification 216 may not includeinformation, such as a description of the capabilities or location ofthe second satellite. Upon receiving the notification 216, therepository 240 may provide a communication 214. The communication 214may be broadcast to all of the satellites (excluding first satellite210). The communication 214 may contain information about the satellitesthat are actively connected to the personal network. In one embodiment,communication 204 and 214 are substantially similar, except they includeinformation from the repository 240 at different times. As withcommunication 204, an embodiment may provide that the communication 214is sent to the satellites that are pertinent to second satellite 220.

FIG. 3 is a method that illustrates how members of a community networkcan join and receive real-time information regarding a presence of othermembers in the community. An example of the community referenced hereinincludes a personal network. An example of an application of such amethod is the participation of any satellites 210, 220, 230 in thepersonal network described with FIGS. 2A and 2B.

In step 310, a member joins the community. In joining the network, acentral location (such as repository 240 in FIGS. 2A and 2B) is providedinformation about the new member. This information may be provided bythe new joining member. The information may include instructions thatother members in the community can use to communicate with the newjoining member. The event of the member joining the community may occurautomatically when the member is activated. For example, each of thesatellites 210, 220, 230 (see FIGS. 2A and 2B) may include instructionsthat cause that satellite to automatically seek out and join adesignated community or personal network whenever a device of thatsatellite is turned on. Alternatively, the member may be directed to thepersonal network manually, or on the occurrence of some event such as aschedule or alarm. Depending on the capabilities of the member, themember may seek out the personal network over the Internet, a LAN, homenetwork, cellular network or other data-carrying network.

Once the member joins the community, step 320 provides that informationregarding all members in the community at that particular instance isbroadcast to all other members in the community. In an embodiment, theinformation may be determined from a structure such as repository 240.Since the community may extend across numerous types of networks (e.g.LAN and Internet), the broadcast may be made so that it can betransmitted across various types of networks. In one implementation, ahypertext transfer protocol (HTTP) message is transmitted, with the rootpath of the message specifying the network (Internet, LAN etc.) on whichthe recipient is connected. The newly joined member also receives thebroadcast. In an embodiment, each member retains information from thebroadcast about other members in the community that are pertinent tothat member.

After joining the community, step 330 provides that the new member mayrequest a service from the other members. The new member may maintain alist of other members in the community that are pertinent to it. Thelist may include specific capabilities or services offered by othermembers, and instructions for communicating with each pertinent member.The list may also provide a location of each pertinent member. Theservice that is requested may be in response to an action that is to beperformed or has been performed by the new member. For example, a usermay request an action to be performed that requires the cooperation ofanother member. In one application, a user may request to view a set ofdigital pictures using a photo-editor service. While using thephoto-editor service, the user may request another service to printselect pictures at a remote site. As an alternative, the new member mayprovide access to another service provided by another member at adifferent location. For example, the user may request a digital videorecorder to record a television program from the user's office.

After use, step 340 provides that the member may also be disconnectedfrom the community. For example, the member may correspond to aparticular service that runs on a user's work station. When the userleaves work and logs-off, the particular member may disconnect from theremainder of the personal network, which may include elements from theuser's home network. According to an embodiment, a member disconnects byfirst sending a request to a central location (such as the repository240 in FIGS. 2A and 2B). The request is processed from the centrallocation.

In response to processing the request, step 350 provides that the otheractive members in the community are informed of the member thatdisconnected. In one embodiment, a broadcast is sent to the activemembers. The broadcast simply includes a list of the active members (aswell as their capabilities, location and other information). The othermembers receive the broadcast and reset their understanding of the othermembers in the community.

FIG. 4 illustrates data structures that can be used to provideinformation to satellites about other members in the personal network,according to an embodiment of the invention. In FIG. 4, a repository 410(may correspond to repository 140 in FIG. 1) shares data with datastructures 420, 430 and 440 (which may correspond to the data structures114, 124, 134 of respective satellites). As mentioned, the repository410 maintains a master list of the satellites and other elements of thepersonal network, while the respective data structures maintain subsetsof the master list. In an embodiment, the data structures 420, 430, 440are each maintained in association with one or more correspondingsatellites. While FIG. 4 illustrates use of separate data structures forindividual satellites, it is possible for satellites that reside at acommon location, or on a common device to share a common data structure.It is also possible for satellites that are closely integrated (such asexecutable on a shared platform) but on different platforms to share acommon data structure.

In an example provided by FIG. 4, each of the repository 410 and thedata structures 420, 430 and 440 are structured as tables. With respectto repository 410, there is a first column 412 containing identifiers toindividual satellites and other members of the personal network. Whilesatellites 412 may correspond to services that run on a user of thepersonal network's device or resource, elements identified in the firstcolumn 412 may also include third-party services offered over publicnetworks. Examples of such networks include POP Internet email accounts,YAHOO! PHOTOS and BRIEFCASE, online music services (APPLE iTUNES) andpublic file sharing networks. At least with respect to satellites, asecond column 414 may be provided in which a capability of the satelliteis provided. While the contents of second column 414 (or other columns)may be in code, the code may also be descriptive to an administrator.One type of capability listed in the column 414 may be a service thatcan be performed by the satellite. The service may be described as alist of functions or operations. Another type of capability listed inthe column 414 may provide considerations or aspects on the satelliteand/or the device on which the satellite resides on. This informationmay be listed explicitly or implicitly via reference to a library. Inaddition to the capabilities, other information such as the location ofthe satellite may be provided in a third column 416. Other columns maybe added as needed.

The capabilities listed in second column 414 may be processed by othersatellites who wish to use the particular satellite being described. Inone embodiment, the information provided in the repository 410, and withthe second column 414 in particular, are provided as a natural languagecode. The natural language code presents code with syntax and semanticsthat correlate to a natural language, such as English. For example, anatural English code facilitates users to view and edit the repository410. The natural language code may be created so as to not discriminatebetween devices, platforms, and/or operating systems.

In FIG. 4, three examples of satellites are described in repository 410.A first satellite in the repository 410 is for a printer driver. Theprinter driver may be for an associated printer that is connected on thepersonal network. The service described in second column 414 for theprinter driver is “display”. The location of the printer driver in thethird column 416 may be provided in the form of a LAN address. A secondsatellite in the repository 410 is for a photo server. The servicedescribed for the photo server is to retrieve (locate and copy) photofiles. The location of the photo server may correspond to the same LANaddress as the printer server, as both satellites may be located on acommon computer in the personal network. In an example provided, a thirdsatellite in the repository 410 may be for a media player. The servicedescribed is to playback media. The location of the third satellite maycoincide with the location of the other satellites.

In an embodiment, the data structures 420, 430, 440 list rows from therepository 410 that are pertinent to the particular satellite associatedwith the respective data structure. Non-pertinent satellites (thoseproviding services that will never be used by a given satellite) may beomitted from the data structure of the given satellite. With respect tothe first data structure 420 for the first satellite, the rows listedmay include the photo server, as the printer driver may need the photoserver to locate a particular file (see an example provided with FIG.6). With respect to the second data structure 430 for the secondsatellite, the printer driver and the media player may both be pertinentsatellites, as the media player may be used to display images, providedby the photo server. The third data structure 440 may list the photoserver as a relevant service.

Heterogeneous Aspect

FIG. 5 illustrates a personal network formed from a plurality ofheterogeneous members interconnected across numerous data transfermediums. The heterogeneous members (or satellites) may be provided onand/or correspond to devices that operate on different platforms (e.g.wireless) or use different operating systems. The heterogeneous membersmay also correspond to applications or data that are configured for suchdifferent platforms or operating systems, as well as applications thatare otherwise not capable of being interfaced with one another, withoutexternal intervention. A personal network may be established by a user,or a community of users, based on devices, applications, and data ofthat user or community.

In an example such as shown in FIG. 5, the personal network includes alocal network domain 502 and a public network domain 504. Additional orfewer domains may be used, depending on the needs of the user or thecommunity. Satellites in the personal network, either individually or incombination with other satellites, may provide one or more service. FIG.5 illustrates examples of devices that may be interconnected by thepersonal network, either as satellites or through the user ofsatellites. In the example provided, the devices include a videorecorder 510, a digital camera 512, a printer 514, a media center 516, apersonal computer 518, a personal digital assistant (PDA) 520, aportable computer (e.g. laptop) 522, a digital video recorder 524 (suchas provided by TiVo). In the example provided, the devices areinterconnected on the local network domain 502. Other network domainsmay be added to the personal network, using networks such as theInternet, or the public switched telephony network (PSTN). In addition,the resources available on the public network domain 504 (such as theInternet) may be provided for use in the personal network. Theseresources include, for example, network locations 505 on which files arestored (e.g. YAHOO! BRIEFCASE), Internet email accounts, and Internetmedia services (APPLE iTUNES).

Satellites may be used to enable the devices to interface and cooperatewith one another in an active and responsive manner. To this end,individual satellites may reside on one or more devices to interfacewith a corresponding device, including to retrieve or accept data fromthe corresponding device, to provide data to the corresponding device,and/or to control the corresponding device. A satellite may either beconfigured to interface with the corresponding device, or thecorresponding device may be provided an interface for acceptingcommunications with the corresponding satellite. The location of thesatellites may be distributed and/or centralized. In one embodiment, thelocations of the satellites are focused in a location selected by theuser. A primary location of the satellites may correspond to the mostpowerful and connected computer machine on the personal network. In theexample provided by FIG. 5, this location may correspond to the user'spersonal computer, laptop or media center. However, specializedsatellites may be configured especially for smaller devices. Forexample, a remote control application with a remote control interfacemay be provided for the PDA 520. The PDA 520 may use a networkconnection to control applications, or other devices on the network.

In an embodiment, the personal network, its resources, and/or itselements may be accessible from external sites via the Internet or anyother data network. Additionally, another web service 530 may beprovided to enable a user to configure the personal network based on theuser's desired capabilities, services, and devices. The web service 530may receive user-information on (i) what devices, applications, and datasets the user wishes to make available on the personal network, (ii)information about the specific models the user has, including thecapabilities of such devices, (iii) account information for the accountson the public network domain 504. The user-information may provideadditional configurations as well. These may include selections of mediafiles or media sources, what may be viewed as channels, and what devicesmay perform functions or use particular services. In one embodiment, anyuser-input for specifying, configuring or otherwise enabling an aspector service of the personal network may be made through the web service530.

In an embodiment, access to elements of the personal network may beprovided to a roaming device 540. Roaming devices may include, forexample, smart phones (such as web-enabled cellular phones), or WIFIenabled devices that locate and communicate with the personal networkfrom a WIFI station. Services may be provided to extend functionality ofthe roaming device 540 with respect to the personal network. Forexample, the services may enable the roaming device 540 to deliver filesto the personal network for storage and/or consumption by other devices,to view files and content stored on the personal network, to playback orreproduce media from media files stored on the personal network, and toplayback media from the various media sources. Embodiments describedherein provide that a roaming device has access to a personal networkeither as a satellite, or as a non-satellite. As a satellite, theroaming device is equipped with an API to handle communications withother satellite. But since the roaming device connection is temporary,network security preferences may designate the roaming device to havecertain limited functions as a non-satellite. These functions includebrowser capabilities to view data on the personal network. Toaccommodate this, a web-service or other satellite may format data toaccommodate browsers. In addition, certain actions that are native toapplications on the roaming device may be configured into andaccommodated by the personal network. For example, as described in laterembodiments, the roaming device may include a program to cause it toautomatically send a captured image or recorded media to the personalnetwork. A satellite on the personal network may also be configured tohandle and store the captured image or media at an appropriate place.

In addition to interfacing with one or more local network domains 502and public network domains 504, the personal network may be configuredto handle media, including to accept media from different sources, tostore and distribute media, and to make media available to the differentdevices. To this end, the media sources may include one or more of thefollowing: cable media feed 532 (e.g., television and radio channels),satellite media feed 534 (e.g., television and radio channels, XMradio), live streaming events 536 delivered from the World Wide Web(e.g., Internet television), broadcast media 538 (e.g., FM radio, AMradio, regular television), and streaming media sources 542 on theInternet (e.g., NAPSTER, APPLE iTUNES). In an embodiment, the differentmedia sources are fed to the media center 516, which then processes thevarious forms of data. Services provided on or made available to themedia center 516 may be used to then make various media from thedifferent sources available to the personal network.

Creating a Personal Network

An embodiment provides that a user (or a community of users) mayestablish a personal network by installing an open repositoryproprietary (“ORB”) application on one or more devices that are to bepart of the user's personal network. One installation results in theformation of the repository (see element 240 FIGS. 2A and 2B). Anembodiment provides that on each device, the installation connects toone or more satellites that provide corresponding services. In onescenario, the installation may provide a newly installed application ona device, while in another scenario, the installation causes therecompilation of one or more existing applications. The recompilationprovides an interface to enable the existing application to communicatewith the repository. Such an application is sometimes referred to asbeing “ORB-enabled”. In either case, the interface provides themechanism by which individual satellites (whether newly installed orrecompiled existing application) communicate with one another.

Each ORB application or interface may include a set of instructions thatare redundant in objective, but written for a particular operatingsystem, programming language and/or platform. For example, an ORBapplication may include different sets of instructions for providing aninterface, where each set of instruction is written in C, C+, C++, JAVAand PERL. Furthermore, ORB applications may be scaled down forparticular devices. For example, devices with limited hardware or smallform factors may receive a minimal set of instructions. Lastly, theinterface provided by the ORB applications may be configured to providebrowser-compatible data or content. In this way, certain devices, suchas small cell phones that are web-enabled, may access and view some dataor content generated by individual satellites without having to executean actual ORB application.

For third-party network accounts and resources that the user orcommunity wish to make part of the personal network, the user mayspecify network locations and information necessary for accessing andusing those resources. For example, the user may provide a HOTMAIL emailaddress, including log-in and password information, an APPLE iTUNESlogin and password, and a YAHOO! PHOTOS login and password. In anembodiment, a web-service may be provided in conjunction with the ORBapplications. Part of the functions of the web service may includecommunicating the third party information for a particular user to oneor more satellites or services on the personal network. Alternatively,the web service may retrieve the content (e.g. emails, MPEG files andphotographs) for the user's personal network, and deliver the content tospecific memory locations on the user's personal network.

Example Usages of Personal Network

The following are examples of how satellites may combine to provideservices and interconnect the heterogeneous elements of the personalnetwork. Various other examples will be described in greater detail withadditional embodiments described below.

In FIG. 6, the use of three services is described as an illustrativeexample of how an embodiment described herein may be implemented. InFIG. 6, the services provided on the personal network include aninterface service 610, a printer driver service 620, and a photo server630. The three services may be combined in order to enable a user toprint photographs. The interface service 610 may be configured to enablethe user to select, and possibly view a list of available photographs,and also to instruct the personal network to print selected photographsat a printer of the printer driver service 620. By selecting the fileusing the interface service 610, the user may also specify file locationand/or location of the file. Using the interface service 610, the usermay also provide or indicate the command of “print” for one or moreselected items. Entry of the command causes the interface service 610 topass a request 652 that identifies a file 642 of the user's selection tothe printer driver service 620. In turn the printer driver service 620references its own data structure to identify the service that iscapable of locating the requested file 642. In the example provided, theprinter driver service 620 would identify the photo server 630 as beingthe appropriate service or satellite. A request 654 would be forwardedto the photo server 630, which in turn would send a communication 656 toa shared memory 640 in order to retrieve file 642. The photo server 630receives a response 658 corresponding to the file 642 from the sharedmemory 640 and delivers a copy 660 to the printer driver service 620. Inlocating the file 642, the photo server 630 may use an identifier andpossibly a location provided for the file by the user. The printerdriver 620 rasterizes data retrieved by the photo server 630 and causesthe associated printer device to make a hard copy of the file 642. Theprinter driver then makes a request 654 to the photo server 630 for thephoto server to make a request 656 that specifies a file 642 from ashared memory 640. Upon the items being printed, a communication may beprovided from the printer driver service 620 to the interface service610 indicating completion of that particular print job.

The flexibility of the personal network, as devised herein, enables thepersonal network to provide services such as the interface service 610at numerous locations. For example, the interface service 610 may existin multiple forms for different devices and/or operating systems. Forexample, the interface service 610 may be configured to be presentableas an application for use with a user's connected PDA. To this end, theinterface service 610 may be configured to receive input from the PDA.The input may, for example, be a text entry, touch selection or voicecommand. Alternatively, the interface service 610 may exist on orthrough a web-site or other network site available through the Internet.In either case, the interface service 610 may have knowledge of thedifferent satellites and their capabilities. This knowledge may bereceived from announcements of the repository, such as shown by FIG. 4.

In another embodiment, the interface service 610 is distributed amongstthe web-service and multiple satellites residing on different devices ofa given personal network. In such an embodiment, the user may be able toselect from the web-based portion of the interface service 610 thelocations from which the interface service 610 is to be made active.Once made active, the user may access the interface service 610 fromthat location.

Other examples of the cooperation and interoperability of satellites maybe provided. In one example, a service may automatically access and/orreceive digital pictures on the digital camera and make the imagesavailable to all devices that are capable of viewing images. Anotherservice may correspond to a printer driver that interfaces with theprinter to print the images. Access to view the images, to control thecamera into taking pictures, to cause the pictures to be made availableon the personal network, and to edit the pictures may be provided fromany location that can access the personal network. In an embodiment,access to the personal network may be provided over the Internet, orfrom the PSTN system.

Another service may enable selection of different media sources aschannels. For example, real-time video captured by the camcorder may beone channel, cable feed may be another channel, and the user may selectwhich channel they wish to view. Extending the example further, anotherservice may transcode the different media feeds for different devices.For example, media from the media feeds may be transmitted from themedia center to cell phone, PDA, and the public network domain 504.Depending on the bandwidth, processing resources, display size andresolution, audio capabilities, and/or memory of the destination, thetranscoding service compresses and reduces resolution of the media feedbased on the destination.

Linked Memory

Embodiments allow for memory devices and resources available on apersonal network to be linked so as to form a combined memory. Thecombined memory may have the appearance of being a single memory medium,when in fact the memory devices and/or resources may be distributedthroughout the personal network. The locations of the memory resourcesand devices may extend to multiple devices residing at multiplelocations on a local area network, to memory devices that are coupled tothe personal network across the Internet or other public network, and tomemory resources provided on third-party sites, such as on web portals.Moreover, embodiments described herein allow for the memory devices andresources to operate on different platforms or operating systems.

FIG. 7 illustrates a basic method illustrating how linked memoryresources on a personal network may be used, according to an embodiment.In step 710, the locations of memory resources on the personal networkare identified. These locations may, at least initially, be identifiedby designations of the user. For example, the user may specify certainmemory components that are under his control or use, and for which theuser wishes to make available for use on the personal network. Thelocations may, for example, correspond to portions of a home computersystem, a media center, a connected appliance (e.g. digital camera orcamcorder), an Internet memory account (e.g. YAHOO! PHOTOS), and a workcomputer which is accessible over the Internet or some other datanetwork. In one embodiment, the portions of memory identified maycorrespond to a branch or segment of a directory structure, includingnodes on which files and other items are provided.

In step 720, a combined memory space is formed by linking the memoryassociated with each of the locations identified in the previous step.The memory resources may be linked by making the memory accessible toone or more satellites (or services) that are cooperatively coupled toone another. In one embodiment, satellites interconnected in a mannerdescribed with FIGS. 1, 2A and 2B may be considered cooperativelycoupled, and memory resources made available to those satellites wouldtherefore be linked. In a scenario where a user establishes a personalnetwork with several ORB-enabled satellites, the user may establish thecombined memory using memory resources associated with individualsatellites. Memory resources associated with individual satellites mayinclude memory, including portions of a device memory (e.g., personalcomputer hard drive, removable memory in a laptop, flash memory in a PDAor memory stick) in which content, data and other items are stored. Suchmemory resources may be structured in the form of a directory. In oneexample, a user may select media folders on the hard drive of a personalcomputer, photographs stored on a PDA, media files stored on a localdrive of a work computer, and so forth.

Step 730 allows for exchanges to occur between satellites, and/orlocations having access to the personal network, and the combinedmemory. For example, embodiments of the invention allow for a user tostore and/or retrieve content, files, documents and other item from anydevice that is a satellite in the personal network. This may correspondto any device on which ORB-enabled applications or interfaces areprovided. In an embodiment, a web-based service may access portions ofthe combined memory to retrieve content and other items. One embodimentprovides that the content and other items are converted into a formatthat is viewable from any device having a browser (or other componentcapable of viewing documents and items in a markup language format).Thus, for example, embodiments enable exchanges to occur between thecombined memory and remote Internet sites.

FIG. 8 illustrates a system for forming and using a combined memory,under an embodiment. The system includes a plurality of linked memoryresources, including a first memory 810, second memory 820, third memory830, and fourth memory 840. Each memory is coupled to one or moreservers in a cluster of servers on the personal network. As shown, afirst server 812 is provided for first memory 810, second server 822 isprovided for second memory 820, third server 832 is provided for thirdmemory 830, and fourth server 842 is provided for fourth memory 840. Theservers may each be software based, and can reside on one or moremachines. However, the servers 812, 822, 832, 842 may each include anAPI that interconnects that server to one or more other satellites onthe personal network, including to a repository 850.

For purpose of description, the first memory 810 is an Internet memoryresource, such as provided by portals, and on Internet email accounts. Anetwork connection 814 may include the Internet. The first memory 810may, for example, be located by a uniform resource locator (URL). Thesecond memory 820 and third memory 830 may be coupled to the personalnetwork using LAN connections 824, 834 respectively. The fourth memory840 may be located on yet another machine or machine resource, but at aseparate network domain. For example, the fourth memory 840 may coincidewith a portion of the hard drive belonging to the user's machine at hiswork. The fourth memory 840 may be accessible to the server cluster ofthe personal network across using a public network connection 844, suchas the Internet. Its location may be identified by an IP address. A URLor other mechanism may be used to locate the fourth memory 840.

Individual servers in the server cluster may be dedicated to retrieve,modify, and delete content, files and other items based on a data typeof the file or item being retrieved. As an alternative, or additionallevel of operation, individual servers in the server cluster may beassigned to specific memory resources or locations. Thus, the individualservers may retrieve, modify, delete and add items/content to assignedmemory resources, or regions of specific memory resources. For example,first server 812 retrieves files from the first memory 810. Each servermay be assigned to retrieve files and other items from a specific memoryin the combined memory. Still further, other embodiments may, as analternative or additional level of operation, provide that specificservers retrieve files based on other factors, such as the directorylocation of the files in respect to the location of other files.

The cluster of servers may be made available to one or more services 850(as provided by individual or combined operations of satellites) on thepersonal network. In one embodiment, the cluster of servers isseamlessly integrated with the services of the personal network. Thesatellite or service may therefore use the linked memory resources as ifthe memory resources where combined and residing on one machine, as oneresource. In an embodiment shown by FIG. 9, the server clusters performoperations in response to requests from different services. Theseoperations may include the retrieval of files, documents and otheritems. In one embodiment, an operation requiring use of the linkedmemory may be performed without the user having to specify the locationof the memory resource. For example, the user may perform the operationwithout taking any separate action to specify the actual location of theitem (such as identifying a directory path of the item). When a requestto perform an operation on an item is received by the cluster ofservers, one of the servers in the cluster may retrieve the item fromthe portion of the linked memory that it is assigned. In oneimplementation, each server may attempt to locate the requested itembased on an identifier of the item, and the server that does locate theitem returns the item to the requesting service. In anotherimplementation, each server recognizes from the identifier whether theitem is in that server's real of operation. For example, only firstserver 812 may retrieve MPEG files. A request for retrieval of aspecific MPEG file may therefore be handled by first server 812. Thefirst server 812 may check one or more memory resources in retrievingthe desired files, but the first server 812 may also have knowledge onwhere to look for that particular file. Examples of operations that maybe performed using the linked memory resources include operations tostore items, to read items, and to edit or delete items. In oneembodiment, the operation and the item may be specified, but thelocation of the memory resource where the item resides may be of norelevance, at least to the user. In such a scenario, a user'sspecification of the operation and item is all that is necessary for thecluster of servers to locate the item and perform the operation. Thus,the aspect of locating a particular item, or a particular location inthe linked memory, may be automated, or at least made independent of thefact that the memory resources may be distributed on multiple machinesand across multiple network domains.

Various types of services are contemplated for a system such as shown inFIG. 8. A service includes one that renders images or plays back audioand/or video media. Such a service may use the cluster of servers toretrieve image/media files for consumption by individual satellitesand/or devices that are interconnected on the personal network. Anotherexample of a service that can use the linked memory includes a serverthat captures media (such as audio, video, or image) and stores themedia at a designated location in the combined media. In the latterscenario, the user may specify an address or location on which thecaptured file is to be stored by making reference to the combinedmemory. But the steps of locating the actual media resource are doneautomatically, even though several media resources on differentlocations and network domains may exist on a given personal network. Inthis way, the combined memory may be viewed and operated as a singlememory resource or entity.

A search service may also be provided for a system described in FIG. 8.The search service may enable a user to enter a search term on aconnected device. The search term may be matched to identifying featuresof files, documents and media stored on the different memory locations.One or more servers 812, 822, 832, 842 may be used to inspect theidentifying features of the items in the memory sources. Alternatively,a database or other data structure may store identifying features ofitems in the memory sources. A combination of servers may populate sucha database. Search terms provided by the user may be compared againstthe database for matches. For example, a search string specified by theuser may be matched to metadata associated with media files.

FIG. 9 illustrates a general application for a combined memory formedfrom linking memory resources located at different locations. Anapplication such as illustrated in FIG. 9 enables for items to be addedto a combined memory of a personal network.

In step 910, a plurality of locations on the personal network areidentified. Each location has an associated memory resource. Asdescribed in FIG. 8, the memory resources may reside on a local domain,on the Internet and/or at a remote location.

Step 920 provides that a combined memory is formed from linking thememory resources associated with the locations identified in step 910.

Step 930 provides that an event is defined that is to result in databeing generated and stored in a designated memory location. In oneembodiment, the event may be defined for a specific device or satellite.The manner in which the event is defined may be numerous, andconfigurable by the user. Embodiments of the invention provide that theevent corresponds to an action taken by or on a specific set ofsatellites, or devices on which the satellites execute.

In step 940, the designated location for storing data from the event isidentified. The designation may be made in reference to the combinedmemory. But the location in the combined memory may actually reside onone of the memory resources that form the combined memory. However, theactual location may be hidden, or represented in some an alternativemanner to reflect the linking and combined nature of the memoryresources.

In step 950, transmission and other operations are defined for datagenerated from the associated event. This may include operations thatcause the data to be transferred to the identified location. Performingthis step may require configuring the satellites (or devices on whichthey reside) to detect the event and to perform one or more additionaloperations, such as copying data and transmitting copied data to serversfrom which the data may be stored and subsequently retrieved from thespecified memory location.

In step 960, the occurrence of the event is detected. For example, theevent may occur to the performance of an action by a specified satelliteor device.

In step 970, additional operations that are to be performed upon theoccurrence of the event are performed. Then in step 980, data generatedfor or by the event is transferred and stored in the associated locationof the combined memory.

Several applications may be implemented using a method such as describedin FIG. 9. In one embodiment, the event may correspond to a roamingdevice capturing a digital image. For example, a method such asdescribed in FIG. 9 may be applied to a cellular phone with digitalcamera functionality. The event defined in step 930 may then correspondto the camera application capturing an image, or even to the cellularphone receiving a captured image (e.g. the cellular phone receives animage file from another cellular phone via email, SMS, attachment,infrared etc.). For step 940, images captured on the cellular phone maypreviously be designated for a particular memory location. For example,the user may specify the location of YAHOO! PHOTOS for all digitalimages captured by that users cellular phone. In step 950, theadditional operations may correspond to an application or configurationthat would cause the cellular phone to automatically transmit the datacorresponding to the captured image to the personal network using acellular network. For steps 960 and 970, when the image is captured orreceived, the transmission of the data corresponding to the image may beinitiated. Step 980 is performed by one of the servers on the personalnetwork transmitting the data corresponding to the image to the user'sYAHOO! PHOTOS account.

Numerous other examples may be determined requiring some or all of thesteps recited in FIG. 9. For example, a method such as described in FIG.9 may be extended to a voice or audio recording capability on a roamingdevice, such as a WIFI enabled PDA. Audio recordings captured on suchdevices (or anywhere else) may be designated for storage on one of thememory locations associated with one or more of the satellites in thepersonal network. When a voice or audio recording is received, the PDAmay be configured to use the WIFI connection to transmit the datacorresponding to the recording to the personal network, where therecording may be stored at the designated location.

Viewer for Combined Memory

FIG. 10 illustrates another embodiment in which a combined memory may beformed in order to provide a viewer of content in the multiple memoryresources that form the combined memory. The viewer enables the user tocombine various sources of information, including information fromsources not included in the memory resources. For example, the user maycreate lists of content items using content listings in the combinedmemory, in combination with content listing from one or more external,non-personal network items.

In FIG. 10, a system is provided that combines data from differentsources for a viewer 1050. The viewer 1050 corresponds to a datastructure that contains data representing the contents of the differentmemory sources that form the combined memory. Examples of such datastructures include text metadata (such as file name) and thumbnail viewsof files. In addition, an embodiment provides that the viewer 1050presents data representing content and media from sources other than thecombined memory.

The combined memory may include first memory source 1010, a secondmemory source 1012, a first network memory resource 1020, and a secondnetwork memory resource 1022. The first and second remote memoryresources 1020, 1022 may correspond to, for example, Internet storageaccounts, such as those provided by email services. A first set of oneor more servers 1014 may perform server operations for the first memorysource 1010, and a second set of one or more servers 1016 may performserver operations for the second memory source 1012. In addition, one ormore servers 1024 may be provided for the first and second remote memoryresources 1020, 1022.

According to an embodiment, each of the sets of servers 1014, 1016, 1024perform read operations to scan the content items in their respectivememory domains. The read operations may be performed automatically, suchas periodically or according to a schedule. In one embodiment, the setsof servers 1014, 1016, 1024 retrieve information that includes the namesof content items in the respective memory sources 1010, 1012, 1020,1022. It is also possible for the sets of servers 1014, 1016, 1024 toeach retrieve metadata from those content items. Examples of themetadata include the size of the file, the dates in which the files oritems were modified or created, and the format of the data in the fileor item. In an embodiment, it is also possible for the sets of servers1014, 1016, 1024 to retrieve content or payload data from the items intheir respective domains, either for all of individual items or portionsthereof. The information read from the different memory sources isprovided to the viewer 1050. The viewer 1050 may correspond to a datastructure such as a table or directory. In one embodiment, selectinformation from the operations performed by the sets of servers 1014,1016, 1024 are presented to the user. The information may be provided asa table, or in an interface where multiple pages are provided. Featuressuch as icons or menus may be used to access and view more informationabout select items.

It is also possible for the information contained in the viewer 1050 tobe hierarchical in nature. For example, the viewer 1050 may presentinformation in a directory format, where nodes in the directorycorrespond to memory resources 1010, 1012, 1020, 1022. The arrangementof the nodes in the directory may be determined by the user. Inaddition, the viewer 1050 may be provided as hierarchical interfacewhere users may use features such as selectable icons and pull-downmenus to view information retrieved from the sets of servers 1014, 1016,1024 in some hierarchical fashion.

In addition to content items from the combined memory, the viewer 1050may be used to show information about content items from one or moremedia sources 1070. For example, a media service 1074 (cable orsatellite media), a media port 1072 for receiving broadcast media, and astreaming media service 1076 from the Internet may be accounted for inthe viewer 1050. In one embodiment, an interface 1062 used to gatherinformation about select media provided from the different sources. Forexample, interface 1062 may be used to present schedule information fromthe different media sources on the viewer 1050. As another example, theinterface 1062 may read guide information from a website or televisionscreen to view when select programs are to be provided from a givensource. The schedule information may correspond to what is made viewableon the viewer 1050. In this example, the user may sort or select fromthe guide information that is made available for display in order toview schedule information for media programs of interest. Once the userhas configured the schedule information to his preferences, he canspecify the schedule information (via a graphic user interface) to beavailable for viewing from select or all satellites in the personalnetwork. The user may even go outside of the satellites and make theschedule available on, for example, an Internet account or anon-satellite roaming device.

Data contained in the viewer 1050 may in turn be provided to otherservices that form the personal network. In an embodiment shown by FIG.10, the other services include, for example, an interface service 1052and a search interface 1054. The interface service 1052 formats apresentation of the viewer for display on one or more types of displayplatforms. For example, the interface service 1052 may provide apresentation to accommodate the capabilities and features of a cellphone or web page. In one embodiment, the search interface 1054 enablesusers to search for items, including files, media, media sources, anddocuments, based on identifying information that is retrieved from thoseitems and provided in the viewer 1050. The identifying information mayinclude, for example, file names, media name, and data types.

In an embodiment, the user of the personal network may configure apresentation of the viewer to display various items and media in anyoneof a number of ways. A user may configure separate interfaces fordifferent kinds of media, documents and files (e.g. radio media, musicfiles, video sources, email etc.) to display the contents of certainsegments of memory or select sources of media and/or data. The user mayalso order the items being presented on an interface, and select therepresentations of items (e.g. directory names or icons). Various otherforms of configuration are also possible.

One purpose of viewer 1050 is to organize the presentation of contentand items that the user may wish to have readily available whenaccessing the personal network from a satellite or roaming device. Theviewer 1050 then provides an updated view of the media and contentavailable to a user from his personal network. In addition to providingan updated view, the viewer 1050 enables users to select media or itemsfor consumption from one of the satellites or roaming devices. In otherwords, the items presented by a viewer on a given interface may beselectable by some user-action. Once selected, the item may be retrievedand delivered to the satellite specified by the user. This satellite maycorrespond to a device that the user is using to connect to the personalnetwork. Alternatively, the satellite on which consumption occurs maycorrespond to another location remote from the location of the user. Forexample, the user may request a media file to be played back on his homecomputer from a location at work.

Live Views

An embodiment enables a personal network to provide the most updatedviews of all data items in the personal network to all nodes on thepersonal network. In one embodiment, each device on the personal networkthat has browser capabilities can access and view the contents of viewer1050. The viewer 1050 may maintain a view of each item in its mostupdated form. In addition to media files, items that can be maintainedin the viewer 1050 include records (such as tasks and calendarinformation), messages (email or voicemail), and documents (worddocument). By providing the most updated view of each such item,embodiments provided herein reduce or even obviate the need to“synchronize” files. For example, a PDA may carry in the personalnetwork a view of the calendar records on a personal computer. No localcopy is needed. Any edits made to the view of the record on the PDA aretransferred to the location of the actual record, where the change ismade.

Interfaces

FIG. 11A-11G illustrate examples of interfaces for displaying contentsfrom the viewer 1050. FIG. 11A illustrates an example of an interface1101 for displaying sources, titles (and other information) and/orschedules of audiovisual media feeds. In contrast to program listingssuch as provided with cable television, an embodiment described hereinlists audiovisual media feeds from numerous sources. Examples ofaudiovisual media feeds (referred to as “programs” for simplicity)include cable or satellite television programs, live webcam feeds, andInternet television. With reference to FIG. 11A, a window 1102 maycontain a list, or a partial list, of programs 1105 at a given instanceof time. The programs 1105 may include cable programs 1106 and Internettelevision programs 1108. Webcam feeds may also be provided. A scrollbar 1109 may be provided to enable the user to scroll and view differentprograms. The programs listed are each available to the user from thepersonal network at a particular time. The user may select one or moretimes (e.g. right now, or at 8:00 PM) on which the list of programs areto be shown. Thus, the list of programs in the window 1102 may provideschedule information and/or current information, and also audiovisualmedia feeds from multiple sources. While the user's input may determinewhat channels or program information is displayed, the user may inputinformation other than a desired time. For example, the user maymanually select programs or content feeds of choice. Alternatively, theuser may select to view what programs are showing based on other sortcriteria, such as title, genre (Comedy), channel, etc.

In an embodiment, the items listed in window 1102 are selected by theuser. According to one implementation, the user may select items byinteracting with the viewer 1050 (FIG. 10), for example, by using aninterface service. Thus, the user does not have to include in hispersonalized listings programs or channels that he is not interested in.This is particularly advantageous when the user is using a device thathas a small form factor, such as a cellular phone. The user can limitprogram listings for the particular interface to programs and otheraudiovisual media feeds of interest, thereby saving display space on thecellular phone, and limiting his interaction with the interface 1101.

A summary segment 1110 may be provided for interface 1101. In oneembodiment, the summary segment 1110 corresponds to electronicallypublished descriptions of programs from the actual media source. Forexample, the Guide feature on cable programs provided such publisheddescriptions. As described in FIG. 10, the interface 1062 may read theGuide information from the media feeds when available.

The interface 1101 may include a set of interface items 1103 forenabling manipulation of the interface. The set of interface items 1103include on/off, moving forward and backward in time, a “now” feature (todisplay programs on select channels at a current time), and anotherfeature to enable date or time selection of programs. Additionalfeatures may be provided for the interface 1101. For example, theability to select channels may be provided on the interface 1101.

In addition, interfaces provided from viewer 1050 may provide remotecontrol functionality. As will be described with embodiments below,satellites may be used to control other satellites. The interface 1101may provide interface features that serve to control another satellite.For example, a set of interface controls 1107 for controlling a digitalvideo recorder (DVR) may be provided. The set of interface controls 1107include individual features for directing the DVR to record or to stoprecording. A search feature 1104 may also be provided to enable a userto search information provided in the window 1102.

FIG. 11B illustrates an interface 1111 for displaying musical work andother audio based media of a user's personal network. As with anembodiment described above, the items 1114 listed in interface 1111 maycorrespond to a selected subset of the overall media provided on thepersonal network. While interface 1111 may list items 1114 on a commoninterface, the actual locations of the items 1114 may be on differentmachines and network items. For example, some musical items may be on auser's local machine, others with a third-party musical provided such asAPPLE iTUNES. Furthermore, the interface may list items even though theyhave different file formats (e.g. MPEG and .wav) The manner of listingthe musical media is shown as a directory or hierarchy, but other listsand organization formats may be used. Furthermore, the manner in whichitems are organized for display on interface 1111 does not have tocorrespond to the manner in which the items are organized in the actualmemory sources, or even in the viewer. The user may select what itemsare listed. An embodiment also provides that the user may select themanner or format (directory, table, iconic, menu etc,) in which itemsare listed.

FIG. 11C shows an interface 1121 for displaying audiovisual files 1124,such as movies, television programs, home movies, and video clips. In anembodiment, these items may be displayed on a separate interface thanaudio files (see e.g. interface 1111), or the two types of media may becombined. In the example provided, video files corresponding to a DVRrecording (TiVO), a family vacation recorded using a home videorecorder, a web video clip, and a DVD movie are listed as the items1124. In one embodiment, the interface 1121 (or any other interface) mayprovide a listing of the actual media device (DVD disc) on which aparticular item is provided. For example, viewer 1050 may interface witha DVD player that is connected and available to certain services on thepersonal network. The media contained on the DVD player may be what islisted in the interface 1121. Interface 1121 may also provide a displayarea 1125 in which information about the media clip is provided.

FIG. 11D illustrates an interface 1131 for a digital photo album that auser can maintain on his personal network. As with the other types ofmedia, the actual locations of the photos may be scattered acrossvarious locations of the personal network. The photos may be selectedfrom a larger set in appearing on the interface 1131. The interface 1131may be used to display identifiers and/or links to photographs selectedby the user. Selection by the user of the identifiers or links mayinitiate a service to display the photograph.

FIG. 11E illustrates an interface 1141 for radio type media. Theinterface 1141 displays different channels 1144 from which radio mediamay be received. The channels 1144 may be from different sources, suchas FM radio, AM radio, satellite radio, cable radio, or the Internet. Anembodiment such as shown enables a user to select channels fromdifferent sources for display on a common interface. The user may alsoselect channels in order to listen to the audio media using interface1141. Radio media may include broadcast audio media from radio stations,satellites, Internet stations, or other sources. Any device on thepersonal network that is capable of receiving radio feeds and storingthe feeds digitally may be used in providing radio media content.

FIG. 11F illustrates another interface 1151 on which voicemail and emailmay be listed. This interface assumes that a satellite or a serviceexists on the personal network that can aggregate emails from one ormore email accounts, as well voicemail messages, such as provided withIP telephony. Selection of items listed in the interface 1151 may causethe items to be opened, played back, or otherwise reproduced. In anembodiment, the type and location of the messages does not matter. Assuch, both voicemail and email from different accounts may be listed.

FIG. 11G illustrates a multi-pane display for a user-interface,according to another embodiment. A multi-pane display 1161 may beprovided as a convenient mechanism for enabling a user to view andselect a channel or file. The display 1161 may be provided on anysatellite having sufficient display resources. While an embodiment suchas shown in FIG. 11G has nine panes, other embodiments may have more orfewer panes. Selection of one pane may cause a resource associated withthe selected pane to be retrieved and opened. While the resourcesassociated with the panes are presented on one interface, the actuallocations of the resources may be varied. For example, one resource maybe located on a home computer, another on an Internet account. Theresources may correspond to files (particularly media files), mediafeeds (cable television channels or web cam), individual satellites(e.g. printer or camera), and other resources of the personal network.

An embodiment provides that the panes 1163 are current on the status ofthe resource. For example, if an individual pane 1163 corresponds to afile, then deletion of the file may make the pane disappear from thedisplay 1161. The panes may display thumbnails, corresponding to asample of data retrieved from the individual resources associated withthe panes. The thumbnail images may be updated (particularly in the casewhere the resources or media programs) to show the most current state(such as the current program being shown) of the underlying resource.Selection of resources underlying the individual panes 1163 may beiconic (e.g. double click with mouse-pointer, or single display tap onPDA).

According to another embodiment, portions of any of the interfaces shownin FIGS. 11A-11G, or items from each respective interface, may becombined or aggregated into one interface.

Remote Control of Components

FIGS. 12A-12C illustrate different control applications in which onecomponent may control other components through the connectivity of apersonal network. In one embodiment, satellites on a personal networkmay be configured so that a first satellite can control a secondsatellite, even if the first and second satellites are remotely locatedfrom one another. Since each satellite contains an API or interface (seeFIGS. 2A and 2B), each satellite can receive and process communicationsfrom other satellites. According to embodiments such as shown in FIGS.12A-12C, one satellite can control another satellite usingcommunications that pass over the personal network, regardless of theconnectivity medium that connects that satellite to the personalnetwork. Embodiments such as described below also provide thatsatellites can communicate and control/be controlled by othersatellites, even if the other satellite has a different operatingsystem, different platform and/or a different usage.

In FIG. 12A, a system is shown in which a first satellite 1210 causesanother satellite 1220 to perform one or more operations. The firstsatellite 1210 may send control signals 1212 to the second satellite1220. The control signals 1212 may be based on user-commands received onthe first satellite. Data 1222 resulting from the second satellite 1220performing the operations is streamed to the first satellite 1210. Thus,the second satellite 1220 may perform the operations, while the firstsatellite 1210 receives a resulting data stream 1222 from the secondsatellite's operations.

It is also possible for a non-satellite or quasi-satellite component touse the personal network to control other satellites and components. Forexample, a cellular device, with limited processing and memoryresources, may be used to connect to and cause the playback of mediafiles through a user's personal network. Data resulting from theplayback may be streamed to the cell phone, so that the cell phone canreproduce the audio and media of the file. However, the playback of thesource media file occurs at the location of the second satellite 1220.In the context of media playback, the terminal that is controlled toperform the original playback may alternatively be referred to as theoriginating terminal, while the other terminal is referred to as thereceiving terminal. In an example provided, the second satellite maycorrespond to a media station or personal computer, which are systemsthat can access a very large media library. The cell phone is an exampleof a receiving terminal that has more limited access to a media library,because the cell phone may not have the same bandwidth resources,memory, or audio playback resources as the personal computer or mediastation. An embodiment such as described enables the cell phone toborrow the media library from another device or system. Furthermore,second satellite 1220 may know of the capabilities of the cell phone,and thus be able to stream data to the cell phone in a manner thatallows audio output to occur on the cell phone. For example, the rate atwhich data is streamed may be configured to suit the bandwidth and/orprocessing resources of the cell phone. As an example, a full mediaoutput operation may be performed on the second satellite 1220 at thecontrol of the cell phone, resulting in rich audio generation andpossible video display. No user is needed on the second satellite 1220.But From the output of the second satellite 1220, a set of data may bestreamed to the cell phone that enables the same media being played onthe second satellite 1220 to be played on the cell phone. However,differences may exist in the audio generated on the cell phone, ascompared to the second satellite. One difference may be that thecompression used to send the set of data to the cell phone may be of alower quality, since the cell phone may have lower graphic and audioequipment quality, processing speed, and/or bandwidth. Therefore, thequality of the audio output on the cell phone may be less than that ofthe second satellite.

In an embodiment, for a satellite or other component to be able tocontrol other satellites remotely, the satellite needs to be equippedwith capabilities that allow for it to be a controller. This may includethe ability to process and send control signals, to processuser-commands that are converted to control signals, and to receiveresulting data as a result of the other satellite performing itsoperations. To this end, an embodiment provides that a controllersatellite may be created for deployment on a personal network.

As mentioned, the result of the second satellite 1220 performing theoperations commanded by the first satellite is that data is streamedfrom the second satellite to the first satellite. Streaming data 1222means that the data is buffered and dispersed from the second satellite1220 so that the data is continuously processed on the first satellitein a proper time sequence. In the case where data stream 1222corresponds to audio and/or video media, the result is that the datastream can reproduce the audio and/or video media to replicate playbackof the original media resource at the second satellite 1220. Instreaming data, the second satellite 1220 buffers the data beforesending it. The second satellite 1220 may initiate the stream operation,including the buffering of the data. Alternatively, the first satellite1210 assists in performing the stream operation. Because the data isstreamed, the data may be carried more efficiently and quickly, andreceived more richly. This compares to previous approaches to carryrefresh data from an originating terminal to a recipient terminal.Refresh data usually corresponds to a snap shot of a visualpresentation, such as a screen shot. When refresh and transmitoperations are performed rapidly on the originating terminal, a videofeel can be recreated on the recipient terminal. But this form of datasharing requires large amounts of data to be transferred, and the videofeel is poor, since the refresh operations really only correspond to aseries of snap shots. Also, audio data cannot be recreated with therefresh operation. The refresh and transmit operation offers littleopportunity to configure the data transmission for the needs of therecipient terminal. For example, if the recipient terminal has a smallscreen, there is no opportunity to shrink the video media. In contrast,embodiments described herein enable the originating terminal (wheresecond satellite 1220 resides) to configure the data stream for therecipient (cell phone or first satellite).

In addition to playback of audio or video files, other examples ofapplications for an embodiment such as shown in FIG. 12A include thefollowing. The second satellite 1220 may receive live media, in the formof cable or satellite feeds. The first satellite 1210 may control thesecond satellite 1220, and other satellites as well, in directing thesecond satellite to forward data from the live feed to the firstsatellite, where it can be replicated. Additional description of such anembodiment is provided below. The second satellite 1220 may alsocorrespond to an application that generates a document, such as a wordprocessor. The control signals 1212 may initiate the second satellite1220 to execute, thereby opening the document and streaming it (orportions thereof) to the first satellite.

The control signals 1212 may also be used to manipulate an operation ofthe second satellite 1220. For example, a user may interact with thefirst satellite 1210 in order to send a signal to the second satellite1220 to manipulate a play-list, by for example, skipping a song orrepeating it. As another example, the user may also interact with thefirst satellite 1210 in order to control edits or input into a documenthandled by the second satellite 1220.

While an embodiment shown in FIG. 12A illustrates data 1222 beingstreamed from the second satellite 1220 to the first satellite 1210,another embodiment provides that the data 1222 can be streamed to athird location, either instead of or concurrently with streaming thedata to the first location. Thus, for example, first satellite 1210 candirect second satellite 1220 to stream data to a web-site, a roamingdevice or other location accessible to the personal network.

FIG. 12B illustrates an extension of a concept illustrated in FIG. 12A.In FIG. 12B, one satellite controls multiple satellites. In oneembodiment, the satellites correspond to multiple applications, whichmay or may not reside at the same location. In an example provided byFIG. 12B, a first satellite 1240 is provided at a first location. Asecond satellite 1250 is provided at a second location, and a thirdsatellite 1260 is provided at a third location that may or may notcorrespond to the second location. In an embodiment, the first satellite1240 is configured to use control signals 1242 to control the secondsatellite 1250 and the third satellite 1260 independently of oneanother. Still further, an embodiment provides that an action 1262 ofthe third satellite 1260 that is controlled by the first satellite 1240is conditioned on a corresponding action 1252 that is to be performed ofthe second satellite. The first satellite 1240 may control the secondsatellite to perform the action 1252, and the action 1252 may be used bythe first satellite 1240 in causing the third satellite to perform theaction 1262. The manner in which multiple satellites may be controlledfrom a common satellite in a cascaded or serial fashion may be extendedto multiple satellites.

One application for an embodiment such as shown in FIG. 12B includes aroaming device (first satellite 1240) that connects to a personalnetwork and direct a text document application (second satellite 1250)to retrieve a specified document. The text document application maycorrespond to a word application, a web-based text content retrievalapplication, or an email application. A user-input may specify, forexample, what document is to be retrieved. Once the document isretrieved (action 1252), the document may be used by a text-audioapplication (third satellite 1260) to generate an audio output (action1262) based on the contents of the document. The audio may be outputtedat the location of the third satellite, or alternatively streamed to thelocation of the first satellite 1240. Still further, the audio may bestreamed to a third or fourth one or more additional satellites 1265. Auser may, for example, use his cell phone to direct a server on thepersonal network to retrieve a news item from the web. The cell phonemay direct the server to send the document to a text-audio application,which then can convert the document into an audio file. The audio filemay then be streamed back to the cell phone. Alternatively, the user mayselect another device to receive the audio file. For example, the usermay use his cell phone to direct the audio file to be delivered from thetext-audio application to a connected radio player in the user's car.

In embodiments such as shown in FIGS. 12A-12C, the controlling satellitemay be able to control the other satellites despite the satellites beingheterogeneous. For example, in FIG. 12B, the first satellite 1240 mayoperate on a device having one type of platform or operating system,while the second satellite operates on a second device having anotherplatform or operating system.

FIG. 12C illustrates another embodiment in which an element 1264 of anetwork creates, designates, or otherwise enables a first satellite 1270to send control signals 1272 to a second satellite 1280. In anembodiment, the element 1264 may correspond to a web-service, abrowser-enabled device, or another satellite. For example, a user of thepersonal network may access the first satellite 1270 using a centralizedweb-service where users can establish their personal networks. A serveror other machine may seek out the first satellite 1270 in order toenable that satellite to have control over the second satellite 1280.Once controller and controlled satellites are established, a system mayoperate in a manner such as described with FIGS. 12A and 12B.

FIG. 13 illustrates a method in which a first satellite receives mediadata (such as audio data) from a second satellite that is directed toplayback a media file containing the media data. In step 1310,satellites that are to form the personal network are interconnected.This may be accomplished in a manner such as described with FIGS. 1, 2A,and 2B.

In step 1320, a first satellite is enabled to control the consumption ofmedia files on a second satellite. This step may include enabling thefirst satellite to access media resources on the second satellite, andto initiate the second satellite to perform operations of playing backthe media files. The access to the media resources may also include theability to enable a user on the first satellite to select a mediaresource on the second satellite.

In step 1330, the first satellite is also enabled to direct the secondsatellite to stream data corresponding to the media output to the firstsatellite. The second satellite may also be configured to stream thedata generated from the playback to the first satellite.

Step 1340 provides that the first satellite reproduces the media of themedia file using the data streamed from the second satellite. The firstsatellite may use a smaller application to playback the media, since thedata for reproducing the audio has been streamed to the first satellite.The result may be that the first satellite and the second satellite bothreproduce media from the media file concurrently. As such, both audioand video data may be reproduced at the first satellite, using anapplication that is executing on the second satellite, and a media filethat also resides on the second satellite.

Transducer

FIG. 14 illustrates an embodiment in which a satellite is provided on apersonal network in order to provide a transducer service. Thetransducer service redirects streaming data that is sent to one locationover to a designated satellite. A transducer service may be implementedon a media source such as a cable or satellite media feed, or astreaming event on the Internet. However, a transducer service may beimplemented for any media file that can be streamed.

In step 1410, a media source on a personal network from which streamingmedia can be obtained is identified.

In step 1420, a transducer satellite interfaces with the media source.The transducer satellite may either interface with the media sourcedirectly, or interface with another satellite that provides thetransducer satellite streaming media from the media source (seeembodiments described with FIGS. 12A-12C).

In step 1430, the transducer satellite identifies a target satellite toreceive the media feed. The target satellite may reside on a device,such as a roaming device. The identification of the target satellite maybe specified by the user, such as the case where the user is operatingthe intended target device.

In step 1440, the transducer satellite accesses a repository (e.g.element 140 in FIG. 1) of the personal network in order to determine thecapabilities of the target satellite, including the amount of data itcan receive, and any information about the device that corresponds tothe target satellite. The repository may make reference or contain alibrary with information that includes a data rate that the targetsatellite can handle (based on processing speed or bandwidth to thetarget), a display size or a display resolution. Other pertinentinformation about the device or platform of the target satellite mayalso be used.

In step 1450, the transducer satellite formats or otherwise prepares thedata from the media source for the target satellite, based on theinformation it obtains about the device. For cell phone devices, as anexample, the transducer satellite may reduce the resolution and formatthe streaming data to accommodate the specific display size of thetarget satellite or its device. In many cases, the transducer may alsotake no action, as the target satellite may have full capability toreceive the stream with no modifications.

Step 1460 provides that the formatted data (if any) is streamed to thetarget satellite. The formatting of the media enables media resourcesfrom various sources, such as television or media files, to be formattedand delivered for instant playback on virtually any kind of recipientterminal, such as, for example, cell phones.

CONCLUSION

Although illustrative embodiments of the invention have been describedin detail herein with reference to the accompanying drawings, it is tobe understood that the invention is not limited to those preciseembodiments. As such, many modifications and variations will be apparentto practitioners skilled in this art. Accordingly, it is intended thatthe scope of the invention be defined by the following claims and theirequivalents. Furthermore, it is contemplated that a particular featuredescribed either individually or as part of an embodiment can becombined with other individually described features, or parts of otherembodiments, even if the other features and embodiments make nomentioned of the particular feature. This, the absence of describingcombinations should not preclude the inventor from claiming rights tosuch combinations.

What is claimed is:
 1. A computer implemented method for operating afirst device, the method being implemented by one or more processors ofthe first device and comprising: operating the first device as part of apersonal network, the personal network including a plurality of devicesthat access a plurality of media resources, each of the plurality ofmedia resources being provided on or through at least one of theplurality of devices; operating an application that enables a user toselectively operate the first device as a remote control for controllingone or more other devices of the personal network; responsive to userinput detected through the application operating as the remote control,operating the first device in (i) selecting a media resource of theplurality of media resources, (ii) generating an output corresponding tothe selected media resource on the first device, and (iii) streaming,over one or more networks, data corresponding to the selected mediaresource to a second device, so as to cause a media output from thestreamed data on the second device while generating the output on thefirst device; and wherein the first device and the second device areseparated from one another across one or more networks.
 2. The method ofclaim 1, wherein the output corresponding to the selected media resourceand the media output from the streamed data each include a first audioand/or video.
 3. The method of claim 1, wherein the first device is aroaming device.
 4. The method of claim 3, wherein the second device is atelevision.
 5. The method of claim 1, further comprising operating theapplication to enable the user to selectively operate the first deviceas the remote control for controlling multiple other devices of thepersonal network at the same time.
 6. The method of claim 5, furthercomprising performing one or more operations for streaming datacorresponding to the selected media resource to a third device, so as tocause another media output from the streamed data on the third devicewhile generating the output on the first device.
 7. The method of claim1, wherein the plurality of media resources includes a media librarythat is collectively stored on one or more of the plurality of devices.8. The method of claim 1, wherein the plurality of media resourcesincludes an online media service.
 9. The method of claim 1, wherein theplurality of media resources include one or more of a cable media feed,a satellite media feed, broadcast media, or a live streaming resourcedelivered from the World Wide Web.
 10. The method of claim 1, whereinthe one or more networks includes at least one of a cellular network ora wireless fidelity network.
 11. A computer memory that storesinstructions for operating a first device, the computer memory includinginstructions that, when executed by one or more processors of the firstdevice, cause the first device to perform operations comprising:operating the first device as part of a personal network, the personalnetwork including a plurality of devices that access a plurality ofmedia resources, each of the plurality of media resources being providedon or through at least one of the plurality of devices; operating anapplication that enables a user to selectively operate the first deviceas a remote control for controlling one or more other devices of thepersonal network; responsive to user input detected through theapplication operating as the remote control, operating the first devicein (i) selecting a media resource of the plurality of media resources,(ii) generating an output corresponding to the selected media resourceon the first device, and (iii) streaming, over one or more networks,data corresponding to the selected media resource to a second device, soas to cause a media output from the streamed data on the second devicewhile generating the output on the first device; and wherein the firstdevice and the second device are separated from one another across oneor more networks.
 12. The computer memory of claim 11, wherein theoutput corresponding to the selected media resource and the media outputfrom the streamed data each include a first audio and/or video.
 13. Thecomputer memory of claim 11, wherein the first device is a roamingdevice.
 14. The computer memory of claim 13, wherein the second deviceis a television.
 15. The computer memory of claim 11, further comprisinginstructions that, when executed by the one or more processors, causethe first device to perform operations comprising: operating theapplication to enable the user to selectively operate the first deviceas the remote control for controlling multiple other devices of thepersonal network at the same time.
 16. The computer memory of claim 15,further comprising instructions that, when executed by the one or moreprocessors, cause the first device to perform operations comprising:performing one or more operations for streaming data corresponding tothe selected media resource to a third device, so as to cause anothermedia output from the streamed data on the third device while generatingthe output on the first device.
 17. The computer memory of claim 11,wherein the plurality of media resources includes a media library thatis collectively stored on one or more of the plurality of devices. 18.The computer memory of claim 11, wherein the plurality of mediaresources includes an online media service.
 19. The computer memory ofclaim 11, wherein the plurality of media resources include one or moreof a cable media feed, a satellite media feed, broadcast media, or alive streaming resource delivered from the World Wide Web.
 20. Thecomputer memory of claim 11, wherein the one or more networks includesat least one of a cellular network or a wireless fidelity network.
 21. Afirst device comprising: a memory that stores a set of instructions; oneor more processors that access the set of instructions to: operate thefirst device as part of a personal network, the personal networkincluding a plurality of devices that access a plurality of mediaresources, each of the plurality of media resources being provided on orthrough at least one of the plurality of devices; operate an applicationthat enables a user to selectively operate the first device as a remotecontrol for controlling one or more other devices of the personalnetwork; responsive to user input detected through the applicationoperating as the remote control, operate the first device in (i)selecting a media resource of the plurality of media resources, (ii)generating an output corresponding to the selected media resource on thefirst device, and (iii) streaming, over one or more networks, datacorresponding to the selected media resource to a second device, so asto cause a media output from the streamed data on the second devicewhile generating the output on the first device; and wherein the firstdevice and the second device are separated from one another across oneor more networks.
 22. The first device of claim 21, wherein the outputcorresponding to the selected media resource and the media output fromthe streamed data each include a first audio and/or video.
 23. The firstdevice of claim 21, wherein the first device is a roaming device. 24.The first device of claim 23, wherein the second device is a television.25. The first device of claim 21, wherein the one or more processorsaccess the instructions to enable the user to selectively operate thefirst device as the remote control for controlling multiple otherdevices of the personal network at the same time.
 26. The first deviceof claim 25, wherein the one or more processors access the instructionsto perform one or more operations for streaming data corresponding tothe selected media resource to a third device, so as to cause anothermedia output from the streamed data on the third device while generatingthe output on the first device.
 27. The first device of claim 21,wherein the plurality of media resources includes a media library thatis collectively stored on one or more of the plurality of devices. 28.The first device of claim 21, wherein the plurality of media resourcesincludes an online media service.
 29. The first device of claim 21,wherein the plurality of media resources include one or more of a cablemedia feed, a satellite media feed, broadcast media, or a live streamingresource delivered from the World Wide Web.
 30. The first device ofclaim 21, wherein the one or more networks includes at least one of acellular network or a wireless fidelity network.